import request from "@/utils/request";

/* 
  以下是三级分类的内容

*/
export interface reqCategoryItemType {
  id: number;
  name: string;
  category1Id?: number;
  category2Id?: number;
}

export type reqCategoryType = reqCategoryItemType[];

//1.请求一级分类列表
export const requestCategory1 = () => {
  return request.get<any, reqCategoryType>(`/admin/product/getCategory1`);
};

//2.请求二级分类列表
export const requestCategory2 = (category1Id: number) => {
  return request.get<any, reqCategoryType>(
    `/admin/product/getCategory2/${category1Id}`
  );
};

//3.请求三级分类列表
export const requestCategory3 = (category2Id: number) => {
  return request.get<any, reqCategoryType>(
    `/admin/product/getCategory3/${category2Id}`
  );
};

/* 
  以下是Attr的内容

*/

//某个属性内属性值列表的类型
export interface attrValueListType {
  id?: number;
  valueName: string;
  attrId: number |undefined;
  isEdit?: boolean;
}

//某个属性的类型
export interface attrListItemType {
  id?: number;
  attrName: string;
  categoryId: number;
  categoryLevel: number;
  attrValueList: attrValueListType[];
}

//属性列表的类型
export type attrListType=attrListItemType[]
//4. 获取当前三级分类的属性
export const requestAttrList = (
  category1Id: number,
  category2Id: number,
  category3Id: number
) => {
  return request.get<any,attrListType>(
    `/admin/product/attrInfoList/${category1Id}/${category2Id}/${category3Id}`
  );
};

//5. 删除某个属性
export const requestDeleteAttr = (attrId: number) => {
  return request.delete<any,null>(`/admin/product/deleteAttr/${attrId}`);
};

//6. 新增或修改属性
export const requestUpdateOrAddAttr = (newAttr:attrListItemType) => {
  return request.post<any,null>(`/admin/product/saveAttrInfo`,newAttr);
};
